#include <iostream>
#include <map>
// 6
std::pair<int, std::string> func()
{
    return {1, "zhangsan"};
}

struct point
{
    int x;
    int y;
};

int main()
{
    // auto pair = func();
    // std::cout << pair.first << " " << pair.second << std::endl;

    // 结构化绑定:提升语义 
    // auto [id, name] = func();
    // std::cout << id << " " << name << std::endl;

    // std::map<int,double> m = 
    // {
    //     {1,3.4},
    //     {2,4.5},
    //     {3,4.7}  
    // };
    // for(auto & [id,eyes]:m)  // 引用化结构绑定
    // {
    //     eyes = 10; // 可以直接修改值
    //     std::cout<<id<<" "<<eyes<<std::endl;
    // }

    // 绑定数组
    // int a[3] = {1,2,3};
    // auto& [x,y,z] = a;
    // x = 10;
    // std::cout<<a[0]<<std::endl;

    // 绑定结构体
    point p = {1,2};
    auto& [x,y] = p;
    std::cout<<x<<" "<<y<<std::endl;
    return 0;
}                                       

